There are various methods to create cryptographic keys in hardware. The requirements are that the cryptographic key in stored in a non-volatile storage device and that each silicon chip contains a random key. The randomness ensures that if an adversary obtains keys in one or more chips, then it is infeasible for him to determine the keys in other chips. One method to create cryptographic keys in silicon is to write a random key to a non-volatile memory, such as a flash memory, during the manufacturing process. However, not all chips have flash memory. Another method is to generate a random key and use fuses that are blown to write the random key. These methods use a significant amount of chip area and there is a possibility that the keys may be read through the use of a microscope.